The present invention is related to a method and apparatus for debugging high-speed busses.
Computer systems commonly make use of busses to transfer data between devices that include processors, storage devices and I/O devices. Many of such busses make use of one or more data lines, which are electrical conductors on which signals are used to transfer data in concert with a clock signal and/or one or more control signals.
Many busses are binary busses that make use of signals that transition between a high and a low voltage level, indicating a binary 1 or 0 value for purposes of transferring information. In the case of such busses, only one device connected thereto is able to transmit data at any one time. However, there is also a growing number of ternary busses that make use of signals that transition among a high, a low and an intermediate voltage level. On such busses, two devices connected thereto are able to transmit data to each other, substantially simultaneously, with each device employing various methods to derive the data being transmitted by the other device. By allowing both devices to substantially simultaneously transmit data, they provide the benefit of nearly doubling the rate at which data is transmitted.
Such ternary busses tend to be xe2x80x9cpoint-to-pointxe2x80x9d busses, meaning that only two devices are connected to such busses. A high or low level on a given data line indicates that both devices are transmitting a high or low signal, respectively. An intermediate level indicates that one device is transmitting a high signal while the other is transmitting a low signal. However, determining which device is transmitting the high signal and which is transmitting the low signal is not possible to discern from the intermediate level signal, itself. Each device uses the data it is transmitting on each data line to derive the data that the other device is transmitting.
Since, in a ternary bus, each device must use the data it is transmitting to derive the data being received, debugging a bus to diagnose problems or confirm functionality is rendered more difficult. It is not possible for such diagnostic tools as a logic analyzer to monitor the data being transferred between two devices by the simple attachment of probes to the conductors of a bus. Furthermore, an increasing number of busses now transfer data at rates high enough that the attachment of probes to conductors of a bus will alter the electrical and/or timing characteristics of the bus such that data integrity is adversely effected or the functionality of the bus is impaired.